package com.zhouyong.leetcode.二叉树的最大深度104;

import com.zhouyong.leetcode.TreeNode;

/**
 * @Author 99
 * @Date 2022/10/6 10:34
 * @Version 1.0
 */
public class Test {

    // 给定一个二叉树，找出其最大深度。
    // 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
    // 说明:叶子节点是指没有子节点的节点。
    //
    // 示例：
    // 给定二叉树 [3,9,20,null,null,15,7]，
    //
    //    3
    //   / \
    //  9  20
    //    /  \
    //   15   7
    // 返回它的最大深度3 。

    public static void main(String[] args) {
        TreeNode p = new TreeNode(3, new TreeNode(9), new TreeNode(20, new TreeNode(15), null));
        System.out.println(maxDepth(p));
    }

    public static int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        } else {
            int leftDepth = maxDepth(root.left);
            int rightDepth = maxDepth(root.right);
            return Math.max(leftDepth, rightDepth) + 1;
        }
    }
}
